#define _CRT_SECURE_NO_WARNINGS 1
#include<stdlib.h>
#include<stdio.h>
#include<assert.h>
//void* my_memmove(void * dest,const void * src,size_t num) {
//	assert(dest&&src);
//	void* ret = dest;
//	if (dest<src) {
//		while (num--) {
//			*(char*)dest=*(char*)src;
//			src=(char*)src + 1;
//			dest = (char*)dest + 1;
//	}
//	}
//	else {
//		while (num--) {
//			*((char*)dest + num)=*((char*)src + num);
//		}
//	}
//	return ret;
//}
//int main() {
//	int arr[] = {1,2,3,4,5,6,7,8,9};
//	my_memmove(arr+2,arr,20);
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	for (int i = 0; i < sz;i++) {
//		printf("%d ",arr[i]);
//	}
//	return 0;
//}
char* my_memcpy(char * dest,const char * src,size_t num) {
	assert(dest&&src);
	char* ret = dest;
	while (num--) {
	*(char*)dest=*(char*)src;
	 src=(char*)src+1;
	dest =(char*)dest+1;
	}
	// 
	return ret;
}
int main() {
	int arr1[] = { 1,2,3,4,5,6,7,8,9 };
	int arr2[10] = {0};
	my_memcpy(arr2,arr1,5*sizeof(int));
	int sz = sizeof(arr2) / sizeof(arr2[0]);
	for (int i = 0; i < sz;i++) {
		printf("%d ",arr2[i]);
	}
	return 0;
}